草庐IT

TypeScript 命名空间

全部标签

javascript - 当命名空间已存在时,Type.registerNamespace 会抛出错误

在我的公司环境中,我们使用了大量的javascript。为了简化所有这些脚本的管理,避免命名冲突,我们采用了命名空间的javascript命名约定,基本上是:CompanyName.ProjectName.Area.XYZ.js要创建命名空间,我们使用以下模式:varCompany;(function(Company){(function(Project){(function(Area){(function(XYZ){functionfunction1(args){},functionfunction2(args){}})(Area.XYZ||(Area.XYZ={}));})(Pro

javascript - 命名空间 Meteor 方法来打包

我正在编写一个公开一些Meteor.methods的包。有没有比像这样硬编码它们的名称更聪明的方法来将它们命名空间添加到包中?Meteor.methods({'my:package/methodName':function...})从包的JavaScript文件中找出包名称的方法将是一个好的开始。 最佳答案 这通常是我们今天使用Meteor.methods命名事物的方式。如果你想动态地做一些事情,你可以这样做:varnamespace="my:package";varmyFunc=function(){/*MeteorMethodF

javascript - Protractor + cucumber + typescript 失败

节点版本:4.4.5Protractor版本:3.3.0浏览器:chrome操作系统和版本Win7我正在尝试用typescript编写Protractor+cucumber组合。我的项目有一个简单的功能,可以打开页面并输入三个字段。我无法运行Protractor。它让我低于错误。$protractorprotractor.conf.js[13:40:55]I/hosted-Usingtheseleniumserverathttp://localhost:4444/wd/hub[13:40:55]I/launcher-Running1instancesofWebDriver⨯Unable

javascript - Webpack resolve.root 和 TypeScript 加载器

我们的项目使用webpackresolve.root选项来导入具有绝对路径的模块。(避免像../../../module这样的东西)在目前的状态下,该项目正在使用babel-loader,它工作得很好。我的任务是将应用程序迁移到Angular2。因此,我目前正在过渡到TypeScript。不知何故,ts-loader似乎无法与webpack配置的resolve.root选项结合使用。webpack.config.js的例子resolve:{root:[path.resolve('./node_modules'),path.resolve('./app'),path.resolve('.

javascript - TypeScript - 是否有一个选项可以禁止在除 bool 值之外的任何内容之前使用“!”?

我知道这可能是一个典型的javascript问题,但我发现自己经常使用:if(!something){//...}在TypeScript中验证此something不是undefined或null。这很容易出错!当用于number时,“0”将匹配,当用于enum时,第一项也将匹配(默认情况下,第一项的值为“0”")!有没有办法在TypeScript中处理这个问题?有没有办法配置TypeScript以禁止在除boolean(和any)之外的任何内容前面使用感叹号?这种配置有意义还是我遗漏了一些微不足道的东西?应该:if(something===null||something===undef

javascript - typescript 中的 'd3 和 'd3-hexbin' 作为全局库

因此,我使用d3和d3-hexbin作为全局库:...并在.ts中将它们引用为://////...使用DefinitelyTyped定义。然而,尽管这有效:constsvg=d3.select('#hitmap').append('svg')...这个:consthexbin=d3.hexbin().radius(binsize+1)...失败并显示:Property'hexbin'doesnotexistontype'typeof"/Users/bytter/node_modules/@types/d3/index"'想法? 最佳答案

javascript - 二维空间搜索和 Javascript 实现的优化数据结构?

我正在开发俄罗斯方block类型的HTML5游戏,需要加强空间优化算法。需要以最节省空间的方式将不同大小的矩形block添加到Canvas中。我知道block需要多少空间,我需要找到可以添加block的最近点,固定x坐标-绝对最近的点是很好的。我已经实现了一个版本,它在Canvas上使用逐像素值检查进行搜索,向下推直到为形状找到足够的可用空间,然后添加它。仅当空间从左到右填满时,此方法(缓慢地)起作用-该算法可以安全地假设如果第一个像素列是安全的,则可以添加整个block。我需要让它更健壮,这是我认为应该去的地方。存储四叉树来表示棋盘状态让我可以更快地确定哪里有空间。每个深度级别存储4

javascript - 使用 webpack 生成带打字文件的 typescript 库

目前我的构建过程是:使用ES6模块语法编写大量typescript文件生成一个index.ts,从一个点重新导出所有模块编译为CommonJS+系统输出描述符/输入文件这会生成一个index.js文件,该文件会重新导出所有内部文件,而无需开发人员使用它而无需了解它,以及许多反射(reflect)文件结构的d.ts文件。现在这行得通了,但是如果我要对浏览器采用这种方法,我将需要对所有js进行webpack,否则这将是拉入所有单个文件的http请求噩梦。目前,该库将作为其他库的依赖项使用,因此它不是逻辑的终点或任何它是模块/库的东西。现在的主要问题是关于webpack我知道我可以加载TS并

TypeScript详解十六:类型声明(declare)

目录前言一、类型声明的作用?1.1declare关键字1.2示例二、常见的几种类型声明2.1普通类型声明2.2外部枚举2.3命名空间三、类型声明文件3.1模拟类型声明文件,以jquery为例3.2使用手动实现的jquery.d.ts声明文件3.3第三方声明文件(以jquery为例)3.4npm声明文件可能存在的位置补充知识点总结前言在日常开发中几乎所有的项目都会应用许多第三方库来完成任务需求。这些第三方库不管是否是用TS编写的,最终都要编译成JS代码,才能发布给开发者使用。我们知道是TS提供了类型,才有了代码提示和类型保护等机制。但在项目开发中使用第三方库时,你会发现它们几乎都有相应的TS类型

javascript - 如何在 Typescript 2.1+ 中使用 Bluebird

(我已阅读thispost但它是从八月开始的,它没有回答我对当前typescript版本的问题。)我目前在我的项目中使用Typescript1.8,它工作正常:import*asPromisefrom"bluebird";asyncfunctionf():Promise{returnPromise.delay(200);}但是如果我尝试使用Typescript2.1进行编译:index.ts(2,16):errorTS1059:Returnexpressioninasyncfunctiondoesnothaveavalidcallable'then'member.谷歌搜索在Typscr